package com.mofang.ticketing.user.mapping.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 角色
 *
 * @TableName sys_role
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder
@TableName(value = "sys_role")
@Data
public class SysRoleDO implements Serializable {
    /**
     * 主键ID
     */
    @TableId(value = "id")
    private Long id;

    /**
     * 所属组织 1=平台、2=商户、3=项目成员
     */
    @TableField(value = "belong")
    private Integer belong;

    /**
     * 角色类型 1=平台管理员、2=商户管理员、3=商户成员、4=项目成员
     */
    @TableField(value = "role_type")
    private Integer roleType;

    /**
     * 商户ID 所属组织为平台和项目成员可不存
     */
    @TableField(value = "merchant_id")
    private Long merchantId;

    /**
     * 角色名称
     */
    @TableField(value = "role_name")
    private String roleName;

    /**
     * 角色code
     */
    @TableField(value = "role_code")
    private String roleCode;

    /**
     * 启用状态 1=启用 0=禁用
     */
    @TableField(value = "is_enable")
    private Integer isEnable;

    /**
     * 是否是管理员 1=管理员、0=非管理员
     */
    @TableField(value = "is_admin")
    private Integer isAdmin;

    /**
     * authority json
     */
    @TableField(value = "authority")
    private String authority;

    /**
     * 创建人
     */
    @TableField(value = "create_user_id")
    private Long createUserId;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 更新人
     */
    @TableField(value = "update_user_id")
    private Long updateUserId;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;

    /**
     * 乐观锁
     */
    @TableField(value = "revision")
    private Integer revision;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}